package Soligee.model.vo.cadastros;

import Soligee.model.vo.lancamentos.PedidoCompraVO;
import java.io.IOException;
import java.io.Serializable;
import java.util.Collection;
import javax.persistence.*;
import org.hibernate.annotations.CascadeType;
import java.util.Date;
import org.hibernate.FetchMode;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.Fetch;

@Entity
@Table(name = "representante")
@PrimaryKeyJoinColumn(name = "cod_representante")
@Inheritance(strategy=InheritanceType.JOINED)
public class RepresentanteVO extends PessoaVO implements Serializable {

    @OneToMany(mappedBy = "representante", fetch = FetchType.EAGER)
    @Cascade(CascadeType.LOCK)
    @Fetch(org.hibernate.annotations.FetchMode.SELECT)
    private Collection<PedidoCompraVO> pedidosDeCompra;

    public RepresentanteVO() {
       super();
    }
  
    public RepresentanteVO(int codRepresentante, String nome, String telefoneUm, String telefoneDois, String email, String paginaWeb, String caminhoImagem, Date dataCadastro)
            throws IOException, IllegalStateException {

            super(codRepresentante, nome, telefoneUm, telefoneDois,email, paginaWeb, caminhoImagem,dataCadastro);

            this.setAtivo(true);
    }

    public Collection<PedidoCompraVO> getPedidosDeCompra() {
        return pedidosDeCompra;
    }

    public void setPedidosDeCompra(Collection<PedidoCompraVO> pedidosDeCompra) {
        this.pedidosDeCompra = pedidosDeCompra;
    }
}
